using System.ComponentModel.DataAnnotations;

namespace SupplierCustomerManagement.Domain.Entities
{
    /// <summary>
    /// 客户实体
    /// 代表系统中的客户信息，包含客户的基本信息、联系信息、地址信息、级别信息等
    /// </summary>
    public class Customer : BaseEntity
    {
        /// <summary>
        /// 客户编号
        /// </summary>
        public string CustomerCode { get;  set; }

        /// <summary>
        /// 客户名称
        /// </summary>
        public string Name { get;  set; }

        /// <summary>
        /// 客户类型（个人/企业）
        /// </summary>
        public string Type { get;  set; }

        /// <summary>
        /// 助记码
        /// </summary>
        public string? MnemonicCode { get;  set; }

        /// <summary>
        /// 负责人姓名
        /// </summary>
        public string? ContactPersonName { get;  set; }

        /// <summary>
        /// 负责人电话
        /// </summary>
        public string? ContactPersonPhone { get;  set; }

        /// <summary>
        /// 身份证号
        /// </summary>
        public string? IdCard { get;  set; }

        /// <summary>
        /// 统一社会信用代码
        /// </summary>
        public string? UnifiedSocialCreditCode { get;  set; }

        /// <summary>
        /// 所属行业
        /// </summary>
        public string? Industry { get;  set; }

        /// <summary>
        /// 客户阶段
        /// </summary>
        public string? CustomerStage { get;  set; }

        /// <summary>
        /// 客户自定义标签
        /// </summary>
        public string? CustomTags { get;  set; }

        /// <summary>
        /// 意向产品
        /// </summary>
        public string? IntendedProduct { get;  set; }

        /// <summary>
        /// 合作日期
        /// </summary>
        public DateTime? CooperationDate { get;  set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string? Remarks { get;  set; }
        
        /// <summary>
        /// 省份
        /// </summary>
        public string? Province { get;  set; }

        /// <summary>
        /// 城市
        /// </summary>
        public string? City { get;  set; }

        /// <summary>
        /// 区县
        /// </summary>
        public string? District { get;  set; }

        /// <summary>
        /// 详细地址
        /// </summary>
        public string? DetailedAddress { get;  set; }
        
        /// <summary>
        /// 上级客户ID
        /// </summary>
        public int? SuperiorCustomerId { get;  set; }

        /// <summary>
        /// 客户级别
        /// </summary>
        public int? CustomerLevel { get;  set; }
        
        /// <summary>
        /// 所属市场
        /// </summary>
        public string? AffiliatedMarket { get;  set; }

        /// <summary>
        /// 服务人员
        /// </summary>
        public string? ServicePersonnel { get;  set; }
        
        /// <summary>
        /// 使用状态（启用/停用）
        /// </summary>
        [Required]
        [StringLength(20)]
        public string Status { get; set; } = "启用";

        /// <summary>
        /// 是否归档
        /// </summary>
        public bool IsArchived { get;  set; }
        
        /// <summary>
        /// 录入单位
        /// </summary>
        public string EntryUnit { get;  set; }

        /// <summary>
        /// 使用单位
        /// </summary>
        public string UsageUnit { get;  set; }

       
    }
} 